FileSystem Format |
Tools |
jffs2 |
mkfs.jffs2 |
ubifs |
mkfs.ubifs |
ext2 |
genext2fs |
ext2: SD 카드를 포함하는 관리형 플래시 메모리에 사용
device_table.txt<name> <type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>
type
- f: 일반 파일
- d: 디렉토리
- c: 문자 특수 장치 파일
- b: 블록 특수 장치 파일
- p: FIFO(named pipe)
/dev d 750 0 0 - - - - -
/dev/null c 666 0 0 1 3 0 0 -
/dev/console c 600 0 0 5 1 0 0 -
/dev/tty00 c 600 0 0 252 0 0 0 -
genext2fs
genext2fs -b 4096 -d rootfs -D device-table.txt -U rootfs.ext2
이후, 부팅 시 해당 ext2 파일을 복사해서 루트 파일 시스템을 사용
sudo dd if=rootfs.ext2 of=/dev/mmcblk0p2
이후 u-boot의 root를 /dev/mmcblk0p2로 설정
fatload mmc 0:1 0x80200000 zImage
fatload mmc 0:1 0x80f00000 am335x-boneblack.dtb
setenv bootargs console=tty00, 115200 root=/dev/mmcblk0p2
bootz 0x80200000 - 0x80f00000
혹은 NFS(네트워크)를 통해서 호스트에게 직접 루트 파일시스템을 받고 마운트 할 수 있다.
sudo apt-get install nfs-kernel-server
NFS 서버는 /etc/exports로 제어
└─$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
rw: 디렉토리를 읽고 쓰기로 익스포트
sync: 동긱 버전 NFS 프로토콜 선택(비동기 보다 견고하지만, 약간 느림)
no_subtree_check: 서브트리 확인 비활성화(보안은 낮아지지만, 신뢰성이 높아짐)
no_root_squash: 사용자 ID 0으로 전달된 요청을 다른 사용자 ID로 바꾸지 않고 처리하도록 허용
setenv serverip 192.168.1.1
setenv ipaddr 192.168.1.101
setenv npath [path to stagin directory]
setenv bootargs console=tty00, 115200 root=/dev/nfs rw
nfsroot=${serverip}:${npath} ip=${ipaddr}
fatload mmc 0:1 0x80200000 zImage
fatload mmc 0:1 0x80f00000 am335x-boneblack.dtb
bootz 0x80200000 - 0x80f00000